<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取一个范围内的随机整数</title>
</head>
<body>
<script>
    //封装一个函数，作用是获取一个范围内的随机整数

    //实现获取0~10之间的随机整数
    function Integer1() {
        //1.利用Math.random()获取0~1之间的随机小数
        const math = Math.random();
        //2.把获取到的随机小数*11，就能得到0~10.999...之间的随机小数
        const mathIng = math * 11;
        //3.向下取整得到0~10之间的随机整数
        return Math.floor(mathIng)
    }

    const res1 = Integer1();
    document.write(res1.toString())

    document.write('<br>')

    //实现获取0~20之间的随机整数
    function Integer2() {
        //1.利用Math.random获取0~1之间的随机小数
        const math = Math.random();
        //2.把获取到的随机小数*21，就能得到0~20.999...之间的随机小数
        const mathIng = math * 21;
        //3.向下取整得到0~10之间的随机整数
        return Math.floor(mathIng)
    }

    const res2 = Integer2();
    document.write(res2.toString())

    /*
    由上可以得到：

    获取0~10之间的随机整数
    Math.random()*11,然后向下取整

    获取0~20之间的随机整数
    Math.random()*21,然后向下取整

    那么可得：
    获取0~x之间的随机整数
    Math.random()*(x+1),然后向下取整
     */

    document.write('<br>')

    //实现获取10~20之间的随机整数
    function Integer3() {
        //1.利用Math.random获取0~1之间的随机小数
        const math = Math.random();
        //2.把获取到的随机小数*11+10，就能得到10~20.999...之间的随机小数
        const mathIng = math * 11 + 10;
        //3.向下取整得到0~10之间的随机整数
        return Math.floor(mathIng)
    }

    const res3 = Integer3();
    document.write(res3.toString())

    /*
    获取10~20之间的随机整数
    0~10的随机整数，然后+10

    获取10~30之间的随机整数
    0~20的随机整数，然后+10

    获取20~30之间的随机整数
    0~10的随机整数，然后+20

    由上可以得到：

    获取a~b之间的随机整数
    0~(b-a)的随机整数，然后+a

     */

    document.write('<br>')

    //实现一开始的需求，封装一个函数，作用是获取一个范围内的随机整数
    //准备一个函数接收两个参数
    function Integer(min, max) {
        //求0~两数差之间的随机整数
        const math =Math.floor( Math.random() * (max - min+ 1))
        //将得到的随机整数+相对小的数
        return math + min
    }

    const res = Integer(50, 55);
    document.write(res.toString())
</script>
</body>
</html>